'use strict';
module.exports = app => {
  const { BOOLEAN, INTEGER } = app.Sequelize;

  const MallCart = app.model.define('mall_cart', {
    goods_id: {
      type: INTEGER,
      allowNull: false,
      comment: '商品的ID',
    },
    user_id: {
      type: INTEGER,
      allowNull: false,
      comment: '用户的ID',
    },
    number: {
      type: INTEGER,
      allowNull: false,
      defaultValue: 1,
      comment: '商品的数量 默认为1',
    },
    selected: {
      type: BOOLEAN, // 布尔
      allowNull: false,
      defaultValue: 1, // 设置默认值
      comment: '是否启用 1 true ｜ 0 false',
    },

  });

  // Cart 关联 Goods 表
  // app.model.Cart.belongsTo(app.model.Goods, {
  //   foreignKey: 'goods_id', // Cart表里的一个外键，名字叫goods_id
  //   as: 'goods_info', // 修改别名
  // });
  MallCart.associate = () => {
    // 与Info存在一对多关系，所以是hasOne()
    // app.model.Cart.hasOne(app.model.Goods, { foreignKey: 'goods_id' });
    // 与Classes存在多对一关系，所以使用belongsTo()
    app.model.MallCart.belongsTo(app.model.MallGoods, { as: 'goods_info', foreignKey: 'goods_id', targetKey: 'id' });
    // 与Lessison存在多对多关系，使用belongsToMany()
    // app.model.Student.belongsToMany(app.model.Lession, {
    //   through: app.model.LessionStudent,
    //   foreignKey: 'studentId',
    //   otherKey: 'lessionId',
    // });
  };

  return MallCart;
};
